<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <script>
    // ES6新增Promise对象，所以任务就不能简单的分为同步和异步了。
    // 如何分类？
    // 1. 同步任务
    // 2. 宏任务：事件、定时器、ajax请求、整个script标签
    // 3. 微任务：Promise中的then方法、await

    console.log(1);
    new Promise((resolve, reject) => {
      console.log(2);
      resolve(4);
      console.log(3);
    }).then(res => {
      console.log(res); // 4
    })

    setTimeout(() => {
      console.log(5);
      new Promise((resolve, reject) => {
        console.log(7);
        resolve(8);
      }).then(res => {
        console.log(res); // 8
      })
      console.log(9)
    }, 0);


    console.log(10);
  </script>

</body>

</html>